Loading packages

knitr::opts_chunk$set(echo = TRUE)
pacman::p_load(tidyverse, 
               here,
               metafor,
               emmeans,
               orchaRd)

Loading data and functions

dat <- read_csv(here("Data","Pilot_data.csv"))
# Load custom function to extract data 
source(here("R/functions.R")) 

Data organisation

Getting effect sizes from function, ‘flipping’ effect sizes so that all effect sizes are higher values = individuals do better and learning/memory, and shifting negative values to possitive as lnRR cannot use negative values

#fixing negative values in study 16 (this doesn't work as can't use 0 in lnRR calculation)
#modifying study 16 that has negative values: shifting everything up by the lowest value
#note, this results in inf lnRR - is it because of the zeros?
#dat1 <- dat %>%
 # rowwise() %>%
  #mutate(min.mean = min(CC_mean, EC_mean, CS_mean, ES_mean)) %>%
  #ungroup() %>%
  #mutate(CC_mean = case_when(First_author == "Wang" ~ CC_mean + abs(min.mean),
                            # TRUE ~ as.numeric(.$CC_mean))) %>%
  #mutate(EC_mean = case_when(First_author == "Wang" ~ EC_mean + abs(min.mean), 
                             #TRUE ~ as.numeric(.$EC_mean))) %>%
  #mutate(CS_mean = case_when(First_author == "Wang" ~ CS_mean + abs(min.mean),
                             #TRUE ~ as.numeric(.$CS_mean))) %>%
  #mutate(ES_mean = case_when(First_author == "Wang" ~ ES_mean + abs(min.mean),
                             #TRUE ~ as.numeric(.$ES_mean)))


#Getting effect sizes
effect_size <- effect_set(CC_n = "CC_n", CC_mean = "CC_mean", CC_SD = "CC_SD",
                          EC_n = "EC_n", EC_mean = "EC_mean" , EC_SD ="EC_SD",
                          CS_n = "CS_n", CS_mean = "CS_mean", CS_SD = "CS_SD",
                          ES_n = "ES_n", ES_mean = "ES_mean", ES_SD = "ES_SD",
                          data = dat)

#Removing missing effect sizes
full_info <- which(complete.cases(effect_size) == TRUE) 
dat_effect <- cbind(dat, effect_size)
dat <- dat_effect[full_info, ]

#Flipping 'lower is better' effect sizes
#flipping lnRR for values where higher = worse
dat$lnRR_Ea <- ifelse(dat$Response_direction == 2, dat$lnRR_E*-1,ifelse(is.na(dat$Response_direction) == TRUE, NA, dat$lnRR_E)) # currently NAswhich causes error
dat$lnRR_Sa  <- ifelse(dat$Response_direction == 2, dat$lnRR_S*-1,ifelse(is.na(dat$Response_direction) == TRUE, NA, dat$lnRR_S)) # currently NAswhich causes error
dat$lnRR_ESa <-  ifelse(dat$Response_direction == 2, dat$lnRR_ES*-1,ifelse(is.na(dat$Response_direction) == TRUE, NA, dat$lnRR_ES)) # currently NAswhich causes error

#flipping SMD
dat$SMD_Ea <- ifelse(dat$Response_direction == 2, dat$SMD_E*-1,ifelse(is.na(dat$Response_direction) == TRUE, NA, dat$SMD_E)) # currently NAswhich causes error
dat$SMD_Sa  <- ifelse(dat$Response_direction == 2, dat$SMD_S*-1,ifelse(is.na(dat$Response_direction) == TRUE, NA, dat$SMD_S)) # currently NAswhich causes error
dat$SMD_ESa <-  ifelse(dat$Response_direction == 2, dat$SMD_ES*-1,ifelse(is.na(dat$Response_direction) == TRUE, NA, dat$SMD_ES))

Assigning human readable words to moderators

dat <- dat %>% mutate(Type_learning = case_when(Type_learning == 1 ~ "Habituation",
                                                Type_learning == 2 ~ "Conditioning",
                                                Type_learning == 3 ~ "Recognition", 
                                                Type_learning == 4 ~ "Unclear"),
                      Learning_vs_memory = case_when(Learning_vs_memory == 1 ~ "Learning",
                                                     Learning_vs_memory == 2 ~ "Memory", 
                                                     Learning_vs_memory == 1 ~ "Unclear"),
                      Appetitive_vs_aversive = case_when(Appetitive_vs_aversive == 1 ~"Appetitive",
                                                         Appetitive_vs_aversive == 2 ~ "Aversive",
                                                         Appetitive_vs_aversive == 3 ~ "Not applicable",
                                                         Appetitive_vs_aversive == 4 ~ "Unclear"),
                      Type_stress_exposure = case_when(Type_stress_exposure == 1 ~ "Density",
                                                       Type_stress_exposure == 2 ~ "Scent",
                                                       Type_stress_exposure == 3 ~ "Shock",
                                                       Type_stress_exposure == 4 ~ "Exertion",
                                                       Type_stress_exposure == 5 ~ "Restraint",
                                                       Type_stress_exposure == 6 ~ "MS",
                                                       Type_stress_exposure == 7 ~ "Circadian rhythm",
                                                       Type_stress_exposure == 8 ~ "Noise",
                                                       Type_stress_exposure == 9 ~ "Other",
                                                       Type_stress_exposure == 10 ~ "Combination",
                                                       Type_stress_exposure == 11 ~ "unclear"), 
                      Age_stress_exposure = case_when(Age_stress_exposure == 1 ~ "Prenatal",
                                                      Age_stress_exposure == 2 ~ "Juvenile",
                                                      Age_stress_exposure == 3 ~ "Adult",
                                                      Age_stress_exposure == 4 ~ "Unclear"),
                      Stress_duration = case_when(Stress_duration == 1 ~ "Acute",
                                                  Stress_duration == 2 ~ "Chronic",
                                                  Stress_duration == 3 ~ "Intermittent",
                                                  Stress_duration == 4 ~ "Unclear"),
                      EE_social = case_when(EE_social == 1 ~ "Social",
                                            EE_social== 2 ~ "Non-social", 
                                            EE_social == 3 ~ "Unclear"), 
                      EE_exercise = case_when(EE_exercise == 1 ~ "Exercise", 
                                              EE_exercise == 2 ~ "No exercise"),
                      Age_EE_exposure = case_when(Age_EE_exposure == 1 ~ "Prenatal", 
                                                  Age_EE_exposure == 2 ~ "Juvenile",
                                                  Age_EE_exposure == 3 ~ "Adult", 
                                                  Age_EE_exposure == 4 ~ "Unclear"))

Modelling with lnRR

Things that remain to be done: - Incorporate strain as random effect - Consider including VCV - Check study 82 as it seems to be an ourlier

Stress

Intercept model

Learning and memory are significantly reduced due to stress. High heterogeneity

mod_S0 <- rma.mv(yi = lnRR_Sa, V = lnRRV_S, random = list(~1|Study_ID,
                                                          ~1|ES_ID),
                 test = "t", 
                 data = dat)

summary(mod_S0) 
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -1.8202    3.6404    9.6404   16.8605    9.9481   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0266  0.1632     27     no  Study_ID 
## sigma^2.2  0.0084  0.0914     83     no     ES_ID 
## 
## Test for Heterogeneity:
## Q(df = 82) = 485.4512, p-val < .0001
## 
## Model Results:
## 
## estimate      se     tval  df    pval    ci.lb    ci.ub 
##  -0.0928  0.0367  -2.5292  82  0.0133  -0.1658  -0.0198  * 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
i2_ml(mod_S0) 
##    I2_total I2_Study_ID    I2_ES_ID 
##   0.9126441   0.6947688   0.2178753
funnel(mod_S0)

orchard_plot(mod_S0, mod = "Int", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Meta-regression

Type of learning

The type of learning/memory response

dat$Type_learning<-as.factor(dat$Type_learning)

mod_S1 <- rma.mv(yi = lnRR_Sa, V = lnRRV_S, mod = ~Type_learning-1, random =   list(~1|Study_ID,
                                                                                    ~1|ES_ID),
                 test = "t",
                 data = dat)

summary(mod_S1)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -1.5005    3.0010   13.0010   24.9112   13.8118   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0296  0.1721     27     no  Study_ID 
## sigma^2.2  0.0078  0.0881     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 80) = 483.5512, p-val < .0001
## 
## Test of Moderators (coefficients 1:3):
## F(df1 = 3, df2 = 80) = 3.2077, p-val = 0.0275
## 
## Model Results:
## 
##                            estimate      se     tval  df    pval    ci.lb 
## Type_learningConditioning   -0.0991  0.0405  -2.4474  80  0.0166  -0.1797 
## Type_learningHabituation    -0.2266  0.0887  -2.5543  80  0.0125  -0.4031 
## Type_learningRecognition    -0.0356  0.0575  -0.6184  80  0.5381  -0.1500 
##                              ci.ub 
## Type_learningConditioning  -0.0185  * 
## Type_learningHabituation   -0.0501  * 
## Type_learningRecognition    0.0789    
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_S1) 
##   R2_marginal R2_coditional 
##    0.04543202    0.80182374
# Orchard plot 
orchard_plot(mod_S1, mod = "Type_learning", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Learning vs Memory

Is the assay broadly measuring learning or memory?

mod_S2 <-  rma.mv(yi = lnRR_Sa, V = lnRRV_S, mod = ~Learning_vs_memory-1, random = list(~1|Study_ID,                                                                               ~1|ES_ID),
                  test = "t",
                  data = dat)

summary(mod_S2) 
## 
## Multivariate Meta-Analysis Model (k = 77; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -4.9861    9.9722   17.9722   27.2422   18.5437   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0316  0.1778     27     no  Study_ID 
## sigma^2.2  0.0079  0.0889     77     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 75) = 477.8435, p-val < .0001
## 
## Test of Moderators (coefficients 1:2):
## F(df1 = 2, df2 = 75) = 2.9032, p-val = 0.0610
## 
## Model Results:
## 
##                             estimate      se     tval  df    pval    ci.lb 
## Learning_vs_memoryLearning   -0.0558  0.0494  -1.1301  75  0.2620  -0.1541 
## Learning_vs_memoryMemory     -0.0975  0.0410  -2.3757  75  0.0201  -0.1792 
##                               ci.ub 
## Learning_vs_memoryLearning   0.0426    
## Learning_vs_memoryMemory    -0.0157  * 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_S2) 
##   R2_marginal R2_coditional 
##    0.00967603    0.80203493
# Orchard plot 
orchard_plot(mod_S2, mod = "Learning_vs_memory", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Appetitive vs aversive

The type of cue used

mod_S3 <- rma.mv(yi = lnRR_Sa, V = lnRRV_S, mod = ~ Appetitive_vs_aversive-1, random = list(~1|Study_ID,                                                                              ~1|ES_ID),
                 test = "t",
                 data = dat)

summary(mod_S3)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -2.1549    4.3099   14.3099   26.2200   15.1207   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0255  0.1596     27     no  Study_ID 
## sigma^2.2  0.0097  0.0983     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 80) = 407.5047, p-val < .0001
## 
## Test of Moderators (coefficients 1:3):
## F(df1 = 3, df2 = 80) = 2.6321, p-val = 0.0556
## 
## Model Results:
## 
##                                       estimate      se     tval  df    pval 
## Appetitive_vs_aversiveAppetitive       -0.1818  0.0886  -2.0507  80  0.0436 
## Appetitive_vs_aversiveAversive         -0.0834  0.0429  -1.9429  80  0.0555 
## Appetitive_vs_aversiveNot applicable   -0.0680  0.0503  -1.3527  80  0.1800 
##                                         ci.lb    ci.ub 
## Appetitive_vs_aversiveAppetitive      -0.3581  -0.0054  * 
## Appetitive_vs_aversiveAversive        -0.1688   0.0020  . 
## Appetitive_vs_aversiveNot applicable  -0.1681   0.0320    
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_S3) 
##   R2_marginal R2_coditional 
##    0.04201061    0.73658351
# Orchard plot 
orchard_plot(mod_S3, mod = "Appetitive_vs_aversive", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Type of stress

The type of stress manipulation

mod_S4 <- rma.mv(yi = lnRR_Sa, V = lnRRV_S, mod = ~Type_stress_exposure-1, random = list(~1|Study_ID,
                                                                                         ~1|ES_ID),
                 test = "t",
                 data = dat)
summary(mod_S4) 
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -2.2721    4.5442   20.5442   39.2946   22.6618   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0324  0.1801     27     no  Study_ID 
## sigma^2.2  0.0090  0.0950     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 77) = 391.0125, p-val < .0001
## 
## Test of Moderators (coefficients 1:6):
## F(df1 = 6, df2 = 77) = 1.1700, p-val = 0.3312
## 
## Model Results:
## 
##                                  estimate      se     tval  df    pval    ci.lb 
## Type_stress_exposureCombination   -0.0484  0.1186  -0.4080  77  0.6844  -0.2846 
## Type_stress_exposureMS            -0.0597  0.0617  -0.9677  77  0.3362  -0.1827 
## Type_stress_exposureNoise         -0.0786  0.1120  -0.7024  77  0.4846  -0.3016 
## Type_stress_exposureOther         -0.1540  0.2512  -0.6132  77  0.5416  -0.6542 
## Type_stress_exposureRestraint     -0.1738  0.0793  -2.1907  77  0.0315  -0.3318 
## Type_stress_exposureShock         -0.0742  0.1490  -0.4983  77  0.6197  -0.3709 
##                                    ci.ub 
## Type_stress_exposureCombination   0.1878    
## Type_stress_exposureMS            0.0632    
## Type_stress_exposureNoise         0.1443    
## Type_stress_exposureOther         0.3462    
## Type_stress_exposureRestraint    -0.0158  * 
## Type_stress_exposureShock         0.2224    
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_S4)
##   R2_marginal R2_coditional 
##     0.0442837     0.7921150
# Orchard plot 
orchard_plot(mod_S4, mod = "Type_stress_exposure", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Age of stress

The age at which the individuals were exposed to the stressor. Note there are a lot of ‘unkown’ age as authors only report PND which needs to be researched. I’m wondering if this also needs an ‘adolescence’ category as this seesm to be popular in rodent research

mod_S5 <-rma.mv(yi = lnRR_Sa, V = lnRRV_S, mod = ~Age_stress_exposure-1, random = list(~1|Study_ID,
                                                                                       ~1|ES_ID),
                test = "t",
                data = dat)
summary(mod_S5) 
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -0.5590    1.1179   13.1179   27.3346   14.2846   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0254  0.1594     27     no  Study_ID 
## sigma^2.2  0.0086  0.0929     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 79) = 348.3546, p-val < .0001
## 
## Test of Moderators (coefficients 1:4):
## F(df1 = 4, df2 = 79) = 2.8005, p-val = 0.0314
## 
## Model Results:
## 
##                              estimate      se     tval  df    pval    ci.lb 
## Age_stress_exposureAdult      -0.1029  0.0938  -1.0972  79  0.2759  -0.2897 
## Age_stress_exposureJuvenile   -0.0331  0.0478  -0.6932  79  0.4902  -0.1283 
## Age_stress_exposurePrenatal   -0.1828  0.1030  -1.7746  79  0.0798  -0.3878 
## Age_stress_exposureUnclear    -0.2284  0.0905  -2.5236  79  0.0136  -0.4085 
##                                ci.ub 
## Age_stress_exposureAdult      0.0838    
## Age_stress_exposureJuvenile   0.0620    
## Age_stress_exposurePrenatal   0.0222  . 
## Age_stress_exposureUnclear   -0.0482  * 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_S5) 
##   R2_marginal R2_coditional 
##     0.1348675     0.7806227
# Orchard plot 
orchard_plot(mod_S5, mod = "Age_stress_exposure", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Acute vs chronic stress

How long was the stress applied for (chronic = every day for 7 days or more)? This has the highest marginal R2

mod_S6 <-rma.mv(yi = lnRR_Sa, V = lnRRV_S, mod = ~Stress_duration-1, random = list(~1|Study_ID,
                                                                                   ~1|ES_ID),
                test = "t",
                data = dat)
summary(mod_S6) 
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -0.2670    0.5339   12.5339   26.7506   13.7006   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0239  0.1546     27     no  Study_ID 
## sigma^2.2  0.0092  0.0959     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 79) = 466.3131, p-val < .0001
## 
## Test of Moderators (coefficients 1:4):
## F(df1 = 4, df2 = 79) = 3.1070, p-val = 0.0199
## 
## Model Results:
## 
##                              estimate      se     tval  df    pval    ci.lb 
## Stress_durationAcute           0.0729  0.0827   0.8818  79  0.3805  -0.0917 
## Stress_durationChronic        -0.1297  0.0422  -3.0725  79  0.0029  -0.2138 
## Stress_durationIntermittent   -0.2395  0.1732  -1.3826  79  0.1707  -0.5843 
## Stress_durationUnclear        -0.0733  0.1342  -0.5464  79  0.5864  -0.3405 
##                                ci.ub 
## Stress_durationAcute          0.2375     
## Stress_durationChronic       -0.0457  ** 
## Stress_durationIntermittent   0.1053     
## Stress_durationUnclear        0.1938     
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_S6) 
##   R2_marginal R2_coditional 
##     0.1847287     0.7733348
# Orchard plot 
orchard_plot(mod_S6, mod = "Stress_duration", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Environmental enrichment

Intercept model

Learning and memory are significantly improved when housed with environmnetal enrichment

mod_E0 <- rma.mv(yi = lnRR_Ea, V = lnRRV_E, random = list(~1|Study_ID,
                                                          ~1|ES_ID),
                 test = "t",
                 data = dat)
summary(mod_E0) 
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -9.5805   19.1609   25.1609   32.3811   25.4686   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0139  0.1177     27     no  Study_ID 
## sigma^2.2  0.0274  0.1655     83     no     ES_ID 
## 
## Test for Heterogeneity:
## Q(df = 82) = 633.2567, p-val < .0001
## 
## Model Results:
## 
## estimate      se    tval  df    pval   ci.lb   ci.ub 
##   0.1864  0.0341  5.4634  82  <.0001  0.1185  0.2542  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
i2_ml(mod_E0) 
##    I2_total I2_Study_ID    I2_ES_ID 
##   0.9248889   0.3106993   0.6141896
funnel(mod_E0)

#trying orchard plot

orchard_plot(mod_E0, mod = "Int", xlab = "lnRR", alpha=0.4) +  # Orchard plot 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5)+ # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2)+ # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_colour_manual(values = "darkorange")+ # change colours
  scale_fill_manual(values="darkorange")+ 
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Meta-regression

Type of learning

The type of learning/memory response

mod_E1 <- rma.mv(yi = lnRR_Ea, V = lnRRV_E, mod = ~Type_learning-1, random = list(~1|Study_ID,
                                                                                  ~1|ES_ID),
                 test = "t",
                 data = dat)

summary(mod_E1)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -7.1741   14.3482   24.3482   36.2584   25.1591   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0166  0.1289     27     no  Study_ID 
## sigma^2.2  0.0234  0.1530     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 80) = 627.5479, p-val < .0001
## 
## Test of Moderators (coefficients 1:3):
## F(df1 = 3, df2 = 80) = 11.9133, p-val < .0001
## 
## Model Results:
## 
##                            estimate      se    tval  df    pval    ci.lb 
## Type_learningConditioning    0.2281  0.0384  5.9465  80  <.0001   0.1517 
## Type_learningHabituation     0.0484  0.1008  0.4808  80  0.6320  -0.1521 
## Type_learningRecognition     0.0784  0.0649  1.2082  80  0.2305  -0.0507 
##                             ci.ub 
## Type_learningConditioning  0.3044  *** 
## Type_learningHabituation   0.2490      
## Type_learningRecognition   0.2075      
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_E1) 
##   R2_marginal R2_coditional 
##    0.09962679    0.47342831
# Orchard plot 
orchard_plot(mod_E1, mod = "Type_learning", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Learning vs Memory

Is the assay broadly measuring learning or memory?

mod_E2 <-  rma.mv(yi = lnRR_Ea, V = lnRRV_E, mod = ~Learning_vs_memory-1, random = list(~1|Study_ID,
                                                                                        ~1|ES_ID),
                  test = "t",
                  data = dat)

summary(mod_E2) 
## 
## Multivariate Meta-Analysis Model (k = 77; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -8.0101   16.0203   24.0203   33.2902   24.5917   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0189  0.1374     27     no  Study_ID 
## sigma^2.2  0.0202  0.1422     77     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 75) = 576.4243, p-val < .0001
## 
## Test of Moderators (coefficients 1:2):
## F(df1 = 2, df2 = 75) = 14.6261, p-val < .0001
## 
## Model Results:
## 
##                             estimate      se    tval  df    pval   ci.lb 
## Learning_vs_memoryLearning    0.2043  0.0515  3.9645  75  0.0002  0.1016 
## Learning_vs_memoryMemory      0.1905  0.0389  4.8910  75  <.0001  0.1129 
##                              ci.ub 
## Learning_vs_memoryLearning  0.3070  *** 
## Learning_vs_memoryMemory    0.2680  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_E2) 
##   R2_marginal R2_coditional 
##   0.001087355   0.483536420
# Orchard plot 
orchard_plot(mod_E2, mod = "Learning_vs_memory", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Appetitive vs aversive

The type of cue used

mod_E3 <- rma.mv(yi = lnRR_Ea, V = lnRRV_E, mod = ~ Appetitive_vs_aversive-1, random = list(~1|Study_ID,
                                                                                            ~1|ES_ID),
                 test = "t",
                 data = dat)

summary(mod_E3)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -6.5510   13.1020   23.1020   35.0121   23.9128   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0173  0.1313     27     no  Study_ID 
## sigma^2.2  0.0228  0.1510     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 80) = 371.0663, p-val < .0001
## 
## Test of Moderators (coefficients 1:3):
## F(df1 = 3, df2 = 80) = 12.0223, p-val < .0001
## 
## Model Results:
## 
##                                       estimate      se    tval  df    pval 
## Appetitive_vs_aversiveAppetitive        0.1981  0.0863  2.2947  80  0.0244 
## Appetitive_vs_aversiveAversive          0.2397  0.0430  5.5697  80  <.0001 
## Appetitive_vs_aversiveNot applicable    0.0715  0.0544  1.3139  80  0.1926 
##                                         ci.lb   ci.ub 
## Appetitive_vs_aversiveAppetitive       0.0263  0.3700    * 
## Appetitive_vs_aversiveAversive         0.1540  0.3253  *** 
## Appetitive_vs_aversiveNot applicable  -0.0368  0.1798      
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_E3) 
##   R2_marginal R2_coditional 
##     0.1091672     0.4928642
# Orchard plot 
orchard_plot(mod_E3, mod = "Appetitive_vs_aversive", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Social enrichment

Does EE also include a manipulation of social environment? Note that we excluded any studies that exclusively used social enrichment.s

mod_E4<- rma.mv(yi = lnRR_Ea, V = lnRRV_E, mod = ~EE_social-1, random = list(~1|Study_ID, 
                                                                             ~1|ES_ID),
                test = "t",data = dat)

summary(mod_E4)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -9.0807   18.1614   26.1614   35.7392   26.6877   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0139  0.1179     27     no  Study_ID 
## sigma^2.2  0.0277  0.1665     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 81) = 583.5572, p-val < .0001
## 
## Test of Moderators (coefficients 1:2):
## F(df1 = 2, df2 = 81) = 15.6088, p-val < .0001
## 
## Model Results:
## 
##                      estimate      se    tval  df    pval   ci.lb   ci.ub 
## EE_socialNon-social    0.1397  0.0512  2.7288  81  0.0078  0.0378  0.2415   ** 
## EE_socialSocial        0.2242  0.0460  4.8756  81  <.0001  0.1327  0.3157  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_E4) 
##   R2_marginal R2_coditional 
##    0.04064471    0.36086955
# Orchard plot 
orchard_plot(mod_E4, mod = "EE_social", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Exercise enrichment

Does the form of enrichment include exercise through a running wheel or treadmill?

mod_E5<- rma.mv(yi = lnRR_Ea, V = lnRRV_E, mod = ~EE_exercise-1, random = list(~1|Study_ID,
                                                                               ~1|ES_ID),
                test = "t",
                data = dat)

summary(mod_E5)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -9.8006   19.6012   27.6012   37.1790   28.1275   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0152  0.1231     27     no  Study_ID 
## sigma^2.2  0.0275  0.1658     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 81) = 603.9343, p-val < .0001
## 
## Test of Moderators (coefficients 1:2):
## F(df1 = 2, df2 = 81) = 14.2977, p-val < .0001
## 
## Model Results:
## 
##                         estimate      se    tval  df    pval   ci.lb   ci.ub 
## EE_exerciseExercise       0.1839  0.0421  4.3702  81  <.0001  0.1002  0.2677 
## EE_exerciseNo exercise    0.1925  0.0625  3.0817  81  0.0028  0.0682  0.3168 
##  
## EE_exerciseExercise     *** 
## EE_exerciseNo exercise   ** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_E5) 
##   R2_marginal R2_coditional 
##  0.0003839652  0.3554805192
# Orchard plot 
orchard_plot(mod_E5, mod = "EE_exercise", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Age of enrichment

The age at which the individuals were exposed to environmental enrichment.

mod_E6 <- rma.mv(yi = lnRR_Ea, V = lnRRV_E, mod = ~Age_EE_exposure-1, random = list(~1|Study_ID,
                                                                                    ~1|ES_ID),
                 test = "t",
                 data = dat)

summary(mod_E6) 
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
##  -8.0766   16.1533   26.1533   38.0634   26.9641   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0124  0.1114     27     no  Study_ID 
## sigma^2.2  0.0282  0.1680     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 80) = 589.9641, p-val < .0001
## 
## Test of Moderators (coefficients 1:3):
## F(df1 = 3, df2 = 80) = 11.7375, p-val < .0001
## 
## Model Results:
## 
##                          estimate      se    tval  df    pval    ci.lb   ci.ub 
## Age_EE_exposureAdult       0.1577  0.0695  2.2702  80  0.0259   0.0195  0.2959 
## Age_EE_exposureJuvenile    0.0075  0.1024  0.0733  80  0.9417  -0.1963  0.2113 
## Age_EE_exposureUnclear     0.2251  0.0411  5.4821  80  <.0001   0.1434  0.3068 
##  
## Age_EE_exposureAdult       * 
## Age_EE_exposureJuvenile 
## Age_EE_exposureUnclear   *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_E6) 
##   R2_marginal R2_coditional 
##     0.1038652     0.3774706
# Orchard plot 
orchard_plot(mod_E6, mod = "Age_EE_exposure", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Interaction of stress and EE

Intercept

Enriched and stress animals are better at learning and memory. TODO: It looks like there is a large but low precision outlier. Should potentially remove?

mod_ES0 <- rma.mv(yi = lnRR_ESa, V = lnRRV_ES, random = list(~1|Study_ID,
                                                             ~1|ES_ID),
                  test = "t", 
                  data = dat)

summary(mod_ES0) 
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
## -42.6684   85.3368   91.3368   98.5570   91.6445   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0490  0.2214     27     no  Study_ID 
## sigma^2.2  0.0187  0.1369     83     no     ES_ID 
## 
## Test for Heterogeneity:
## Q(df = 82) = 283.5814, p-val < .0001
## 
## Model Results:
## 
## estimate      se    tval  df    pval   ci.lb   ci.ub 
##   0.1642  0.0535  3.0697  82  0.0029  0.0578  0.2706  ** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
i2_ml(mod_ES0) 
##    I2_total I2_Study_ID    I2_ES_ID 
##   0.8349106   0.6040483   0.2308623
funnel(mod_ES0)

orchard_plot(mod_ES0, mod = "Int", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Meta-regression

Type of learning

The type of learning/memory response

mod_ES1 <- rma.mv(yi = lnRR_ESa, V = lnRRV_E, mod = ~Type_learning-1, random = list(~1|Study_ID,
                                                                                    ~1|ES_ID),
                  test = "t",
                  data = dat)

summary(mod_ES1)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
## -60.7036  121.4071  131.4071  143.3173  132.2179   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0932  0.3053     27     no  Study_ID 
## sigma^2.2  0.1024  0.3199     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 80) = 1129.4679, p-val < .0001
## 
## Test of Moderators (coefficients 1:3):
## F(df1 = 3, df2 = 80) = 3.9660, p-val = 0.0109
## 
## Model Results:
## 
##                            estimate      se     tval  df    pval    ci.lb 
## Type_learningConditioning    0.2587  0.0785   3.2940  80  0.0015   0.1024 
## Type_learningHabituation     0.2573  0.1933   1.3311  80  0.1869  -0.1274 
## Type_learningRecognition    -0.0026  0.1321  -0.0197  80  0.9844  -0.2656 
##                             ci.ub 
## Type_learningConditioning  0.4150  ** 
## Type_learningHabituation   0.6420     
## Type_learningRecognition   0.2604     
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_ES1) 
##   R2_marginal R2_coditional 
##    0.04183842    0.49847406
# Orchard plot 
orchard_plot(mod_ES1, mod = "Type_learning", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Learning vs Memory

Is the assay broadly measuring learning or memory?

mod_ES2 <-  rma.mv(yi = lnRR_ESa, V = lnRRV_ES, mod = ~Learning_vs_memory-1, random = list(~1|Study_ID, 
                                                                                           ~1|ES_ID),
                   test = "t",
                   data = dat)

summary(mod_ES2) 
## 
## Multivariate Meta-Analysis Model (k = 77; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
## -43.0311   86.0621   94.0621  103.3321   94.6335   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0440  0.2097     27     no  Study_ID 
## sigma^2.2  0.0191  0.1383     77     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 75) = 276.0760, p-val < .0001
## 
## Test of Moderators (coefficients 1:2):
## F(df1 = 2, df2 = 75) = 6.4436, p-val = 0.0026
## 
## Model Results:
## 
##                             estimate      se    tval  df    pval   ci.lb 
## Learning_vs_memoryLearning    0.2545  0.0735  3.4617  75  0.0009  0.1081 
## Learning_vs_memoryMemory      0.1345  0.0555  2.4209  75  0.0179  0.0238 
##                              ci.ub 
## Learning_vs_memoryLearning  0.4010  *** 
## Learning_vs_memoryMemory    0.2451    * 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_ES2) 
##   R2_marginal R2_coditional 
##    0.04831121    0.71161934
# Orchard plot 
orchard_plot(mod_ES2, mod = "Learning_vs_memory", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Appetitive vs aversive

The type of cue used

mod_ES3 <- rma.mv(yi = lnRR_ESa, V = lnRRV_ES, mod = ~ Appetitive_vs_aversive-1, random = list(~1|Study_ID,
                                                                                               ~1|ES_ID),
                  test = "t",
                  data = dat)

summary(mod_ES3)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
## -39.5999   79.1999   89.1999  101.1100   90.0107   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0526  0.2294     27     no  Study_ID 
## sigma^2.2  0.0110  0.1048     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 80) = 240.2986, p-val < .0001
## 
## Test of Moderators (coefficients 1:3):
## F(df1 = 3, df2 = 80) = 5.4389, p-val = 0.0019
## 
## Model Results:
## 
##                                       estimate      se    tval  df    pval 
## Appetitive_vs_aversiveAppetitive        0.1787  0.1355  1.3193  80  0.1908 
## Appetitive_vs_aversiveAversive          0.2331  0.0640  3.6425  80  0.0005 
## Appetitive_vs_aversiveNot applicable    0.0309  0.0736  0.4201  80  0.6756 
##                                         ci.lb   ci.ub 
## Appetitive_vs_aversiveAppetitive      -0.0909  0.4483      
## Appetitive_vs_aversiveAversive         0.1057  0.3604  *** 
## Appetitive_vs_aversiveNot applicable  -0.1156  0.1774      
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_ES3) 
##   R2_marginal R2_coditional 
##     0.1001471     0.8447470
# Orchard plot 
orchard_plot(mod_ES3, mod = "Appetitive_vs_aversive", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Type of stress

The type of stress manipulation

mod_ES4 <- rma.mv(yi = lnRR_ESa, V = lnRRV_ES, mod = ~Type_stress_exposure-1, random = list(~1|Study_ID,
                                                                                            ~1|ES_ID),
                  test = "t",
                  data = dat)
summary(mod_ES4)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
## -40.7572   81.5145   97.5145  116.2649   99.6321   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0667  0.2583     27     no  Study_ID 
## sigma^2.2  0.0199  0.1409     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 77) = 256.3426, p-val < .0001
## 
## Test of Moderators (coefficients 1:6):
## F(df1 = 6, df2 = 77) = 1.6374, p-val = 0.1482
## 
## Model Results:
## 
##                                  estimate      se    tval  df    pval    ci.lb 
## Type_stress_exposureCombination    0.0609  0.1779  0.3423  77  0.7330  -0.2933 
## Type_stress_exposureMS             0.2008  0.0928  2.1640  77  0.0336   0.0160 
## Type_stress_exposureNoise          0.1803  0.1658  1.0877  77  0.2801  -0.1498 
## Type_stress_exposureOther          0.6719  0.4186  1.6053  77  0.1125  -0.1616 
## Type_stress_exposureRestraint      0.1069  0.1204  0.8876  77  0.3775  -0.1329 
## Type_stress_exposureShock          0.1530  0.2216  0.6907  77  0.4919  -0.2882 
##                                   ci.ub 
## Type_stress_exposureCombination  0.4151    
## Type_stress_exposureMS           0.3855  * 
## Type_stress_exposureNoise        0.5104    
## Type_stress_exposureOther        1.5054    
## Type_stress_exposureRestraint    0.3466    
## Type_stress_exposureShock        0.5943    
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_ES4)
##   R2_marginal R2_coditional 
##    0.08721812    0.79056434
# Orchard plot 
orchard_plot(mod_ES4, mod = "Type_stress_exposure", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Age of stress

The age at which the individuals were exposed to the stressor. Note there are a lot of ‘unkown’ age as authors only report PND which needs to be researched. I’m wondering if this also needs an ‘adolescence’ category as this seesm to be popular in rodent research

mod_ES5 <-rma.mv(yi = lnRR_ESa, V = lnRRV_ES, mod = ~Age_stress_exposure-1, random = list(~1|Study_ID,
                                                                                          ~1|ES_ID),
                 test = "t",
                 data = dat)
summary(mod_ES5) 
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
## -38.2467   76.4933   88.4933  102.7100   89.6600   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0338  0.1838     27     no  Study_ID 
## sigma^2.2  0.0172  0.1312     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 79) = 210.5035, p-val < .0001
## 
## Test of Moderators (coefficients 1:4):
## F(df1 = 4, df2 = 79) = 5.4753, p-val = 0.0006
## 
## Model Results:
## 
##                              estimate      se     tval  df    pval    ci.lb 
## Age_stress_exposureAdult      -0.0393  0.1213  -0.3236  79  0.7471  -0.2807 
## Age_stress_exposureJuvenile    0.1092  0.0619   1.7636  79  0.0817  -0.0141 
## Age_stress_exposurePrenatal    0.4045  0.1294   3.1268  79  0.0025   0.1470 
## Age_stress_exposureUnclear     0.3755  0.1258   2.9849  79  0.0038   0.1251 
##                               ci.ub 
## Age_stress_exposureAdult     0.2022     
## Age_stress_exposureJuvenile  0.2325   . 
## Age_stress_exposurePrenatal  0.6619  ** 
## Age_stress_exposureUnclear   0.6260  ** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_ES5) 
##   R2_marginal R2_coditional 
##     0.2466401     0.7457772
# Orchard plot 
orchard_plot(mod_ES5, mod = "Age_stress_exposure", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Acute vs chronic stress

How long was the stress applied for (chronic = every day for 7 days or more)? This has the highest marginal R2 (currentl nearly 43%) - need to redo without outlier (study 82)

mod_ES6 <-rma.mv(yi = lnRR_ESa, V = lnRRV_ES, mod = ~Stress_duration-1, random = list(~1|Study_ID,
                                                                                      ~1|ES_ID),
                 test = "t",
                 data = dat)
summary(mod_ES6) 
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
## -35.5823   71.1646   83.1646   97.3813   84.3313   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0247  0.1572     27     no  Study_ID 
## sigma^2.2  0.0203  0.1423     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 79) = 244.5309, p-val < .0001
## 
## Test of Moderators (coefficients 1:4):
## F(df1 = 4, df2 = 79) = 7.8092, p-val < .0001
## 
## Model Results:
## 
##                              estimate      se     tval  df    pval    ci.lb 
## Stress_durationAcute          -0.1655  0.1039  -1.5926  79  0.1152  -0.3723 
## Stress_durationChronic         0.2160  0.0516   4.1879  79  <.0001   0.1133 
## Stress_durationIntermittent    0.6672  0.2069   3.2245  79  0.0018   0.2553 
## Stress_durationUnclear         0.1469  0.1681   0.8740  79  0.3848  -0.1876 
##                               ci.ub 
## Stress_durationAcute         0.0413      
## Stress_durationChronic       0.3186  *** 
## Stress_durationIntermittent  1.0790   ** 
## Stress_durationUnclear       0.4815      
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_ES6) 
##   R2_marginal R2_coditional 
##     0.4280127     0.7423656
# Orchard plot 
orchard_plot(mod_ES6, mod = "Stress_duration", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Social enrichment

Does EE also include a manipulation of social environment (i.e., number of individuals in EE relative to control)?

mod_ES7<- rma.mv(yi = lnRR_ESa, V = lnRRV_ES, mod = ~EE_social-1, random = list(~1|Study_ID,
                                                                                ~1|ES_ID),
                 test = "t",
                 data = dat)

summary(mod_ES7)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
## -42.1441   84.2882   92.2882  101.8660   92.8145   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0508  0.2254     27     no  Study_ID 
## sigma^2.2  0.0193  0.1389     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 81) = 282.4479, p-val < .0001
## 
## Test of Moderators (coefficients 1:2):
## F(df1 = 2, df2 = 81) = 4.9205, p-val = 0.0096
## 
## Model Results:
## 
##                      estimate      se    tval  df    pval    ci.lb   ci.ub 
## EE_socialNon-social    0.1172  0.0799  1.4663  81  0.1464  -0.0418  0.2763     
## EE_socialSocial        0.2048  0.0738  2.7733  81  0.0069   0.0579  0.3517  ** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_ES7) 
##   R2_marginal R2_coditional 
##    0.02631323    0.73195773
# Orchard plot 
orchard_plot(mod_ES7, mod = "EE_social", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Exercise enrichment

Does the form of enrichment include exercise through a running wheel or treadmill?

mod_ES8<- rma.mv(yi = lnRR_ESa, V = lnRRV_ES, mod = ~EE_exercise-1, random = list(~1|Study_ID, 
    ~1|ES_ID),
     test = "t",
     data = dat)

summary(mod_ES8)
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
## -42.2887   84.5773   92.5773  102.1551   93.1036   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0503  0.2242     27     no  Study_ID 
## sigma^2.2  0.0191  0.1382     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 81) = 256.9350, p-val < .0001
## 
## Test of Moderators (coefficients 1:2):
## F(df1 = 2, df2 = 81) = 4.7723, p-val = 0.0110
## 
## Model Results:
## 
##                         estimate      se    tval  df    pval   ci.lb   ci.ub 
## EE_exerciseExercise       0.1458  0.0642  2.2698  81  0.0259  0.0180  0.2736  * 
## EE_exerciseNo exercise    0.2092  0.0998  2.0959  81  0.0392  0.0106  0.4079  * 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_ES8) 
##   R2_marginal R2_coditional 
##    0.01272481    0.72808591
# Orchard plot 
orchard_plot(mod_ES8, mod = "EE_exercise", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13)) 

Age of enrichment

The age at which the individuals were exposed to environmental enrichment.

mod_ES9 <- rma.mv(yi = lnRR_ESa, V = lnRRV_ES, mod = ~Age_EE_exposure-1, random = list(~1|Study_ID,
                                                                                       ~1|ES_ID),
                  test = "t",
                  data = dat)

summary(mod_ES9) 
## 
## Multivariate Meta-Analysis Model (k = 83; method: REML)
## 
##   logLik  Deviance       AIC       BIC      AICc 
## -41.3423   82.6845   92.6845  104.5946   93.4953   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0505  0.2247     27     no  Study_ID 
## sigma^2.2  0.0196  0.1399     83     no     ES_ID 
## 
## Test for Residual Heterogeneity:
## QE(df = 80) = 277.0286, p-val < .0001
## 
## Test of Moderators (coefficients 1:3):
## F(df1 = 3, df2 = 80) = 3.6708, p-val = 0.0156
## 
## Model Results:
## 
##                          estimate      se     tval  df    pval    ci.lb   ci.ub 
## Age_EE_exposureAdult       0.1192  0.1108   1.0758  80  0.2853  -0.1013  0.3397 
## Age_EE_exposureJuvenile   -0.0190  0.1699  -0.1121  80  0.9111  -0.3572  0.3191 
## Age_EE_exposureUnclear     0.2093  0.0667   3.1373  80  0.0024   0.0765  0.3421 
##  
## Age_EE_exposureAdult 
## Age_EE_exposureJuvenile 
## Age_EE_exposureUnclear   ** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r2_ml(mod_ES9) 
##   R2_marginal R2_coditional 
##    0.07306424    0.74108911
# Orchard plot 
orchard_plot(mod_ES9, mod = "Age_EE_exposure", xlab = "lnRR", alpha=0.4) + 
  geom_errorbarh(aes(xmin = lowerPR, xmax = upperPR), height = 0, show.legend = FALSE, size = 1.1, alpha = 0.5) + # prediction intervals
  geom_errorbarh(aes(xmin = lowerCL, xmax = upperCL), height = 0.05, show.legend = FALSE, size = 2) + # confidence intervals
  geom_point(aes(fill = name),  size = 5, shape = 21)+ # mean estimate
  scale_size_continuous(range = c(1, 7))+ # change point scaling
  theme(panel.border = element_rect(colour = "black", fill=NA, size=1.3), # border around the plot
        text = element_text(size = 24), # change font sizes
        legend.title = element_text(size = 15),
        legend.text = element_text(size = 13))